package com.ynkbny.service.impl;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ynkbny.domain.ConversionCoefficient;
import com.ynkbny.domain.EnergySubstanceCodes;
import com.ynkbny.mapper.EnergySubstanceCodesMapper;
import com.ynkbny.service.EnergySubstanceCodesService;
import com.ynkbny.service.TEpUploadTimeService;
import com.ynkbny.service.outsideinterface.MyClient;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author 杨亚
 * @version 1.0.0
 * @title 针对表【energy_substance_codes】的数据库操作Service实现
 * @description 针对表【energy_substance_codes】的数据库操作Service实现
 * @create 2023-11-02 17:48:57
 **/
@Service
public class EnergySubstanceCodesServiceImpl extends ServiceImpl<EnergySubstanceCodesMapper, EnergySubstanceCodes>
    implements EnergySubstanceCodesService {

    @Resource
    private MyClient myClient;

    @Resource
    private TEpUploadTimeService uploadTimeService;

    /**
     * 调用接口更新表数据
     *
     * @author : YY
     * @param enterpriseCode 统一社会信用代码（该接口是提供给任意企业使用的）
     * @return boolean
     *
     * 1：行政区划代码
     * 2：行业编码
     * 3：生产工序编码
     * 4：工序单元编码
     * 5：用能设备编码
     * 6：数据采集来源类型编码
     * 7：采集数据类型编码
     * 8：能源品种编码计量单位及精度
     * 9：耗能工质编码计量单位及精度
     * 10：非能源类产品及计量单位(包含平台预定义编码及企业自定义编码)
     * 11：能效指标编码及计量单位
     * 12：经营指标编码及计量单位
     * 13：其它数据编码
     * 14：能源用途编码
     * 15：计量器具编码
     * 16：企业类型编码
     * 17：重点用能设备分类编码
     */
    @Override
    public boolean dataDownload(String enterpriseCode) {
        String token = uploadTimeService.getToken(enterpriseCode);
        JSONObject jsonObject = myClient.dataDownload(token, enterpriseCode, "9");
        JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("EnergySubstanceCodes");
        List<EnergySubstanceCodes> javaList = jsonArray.toJavaList(EnergySubstanceCodes.class);
        boolean updateBatch = this.saveOrUpdateBatch(javaList);
        return updateBatch;
    }
}




